Modern software applications, adapted for use with human users, typically employ at least one user interface to display data, controls, media, and other information to the user. Software application user interfaces (or “user interfaces,” or “UIs”) can also be interactive, allowing a user to interact with elements, controls, and data displayed on a graphical user interface device via a keyboard, mouse, touchscreen, and other devices. In some modern software applications and services, a single program or application can include several different user interfaces that can be displayed to and interacted with by the user. Further, in some enterprise software solutions offering or serving dozens of different software programs and services to end users, hundreds, and even thousands of related user interfaces can be provided and maintained within the software environment.
As computing and software markets mature, the development of user interfaces for software solutions and systems has grown more sophisticated. For instance, user experience design principles have been integrated into the design of modern software products. User experience design is user-centered, focusing on designing products, in this case software, with a primary focus on the user's experience and interaction with the product. User experience (or “UX”) design principles aim to make users' interactions as simple, efficient, and enjoyable as possible. Considerations of user experience design can include various dimensions including the look, feel, access to tools and services, and communication and co-operation support provided through the user interface. Indeed, international standard (e.g., ISO 9241) have established describing interface design requirements for usability.
Some products have been developed to assist product designers in realizing user-centered design, such as user interface prototyping and simulation tools. In some cases, software user interface design solutions can be proposed and promoted through a user interface style guide defining rules, conventions, preferences, and guidelines for user interfaces within a system. In some cases, user interface style guide can also focus on maintaining user interface consistency across a software product, for example, to promote a consistent particular product appearance, familiar user controls, or maintain a product trade dress.